EZPXWP The Evolution of PEXlib and Open Computing Kevin Borchert Hewlett-Packard Company Systems Technology Division Fort Collins Product Planning June 8, 1993 Introduction Several years ago, the 3D graphics industry began moving slowly but steadily from proprietary APIs (application programming interfaces) to open systems. The race has heated up considerably within the past year. It's not hard to understand why. API users have realized that they can't afford to be locked into the technology of a single vendor. They demand portability so their applications can be quickly ported to multiple platforms. They require ever-increasing graphics functionality on their existing systems. And they need a common, consistent development environment where the "look and feel" of applications remains the same from platform to platform. These are compelling points for migrating from a proprietary API to an open graphics system. But what's the best path to take? Today PEXlib and OpenGL are the front-runners for the position of de facto standard in graphics APIs. Both products have received exposure in trade magazines, and both have their supporters. To date, PEXlib has received the endorsement of the X Consortium and all major workstation vendors except Silicon Graphics, Inc. (SGI). Not surprisingly, SGI opposes PEXlib and supports OpenGL, a derivative of its proprietary IRIS GL product. And although OpenGL is not yet available, SGI has succeeded in positioning OpenGL as a leading API contender while creating a screen of uncertainty and confusion around PEXlib. Like other technologies, the PEX protocol and PEXlib API have been in a constant state of evolution since their inception. This paper incorporates the most recent developments to give an accurate and current snapshot of PEXlib. True objectivity is difficult to achieve since all API vendors have a vested interest in propagating their own vision of the best "open" path to follow. Still, this paper attempts to paint an accurate picture of the need for open graphics and the current position of PEXlib. At the same time it clarifies and rebuts information about PEXlib that is either flawed, incomplete or out of date. We hope the information presented here will reduce confusion and help application developers make an informed decision regarding PEXlib, especially as it compares to OpenGL. The Trend Toward Open Computing In March 1993 at Uniforum in San Francisco, six of the world's largest workstation vendors made a joint announcement. Hewlett-Packard Company, Sun Microsystems, IBM, The Santa Cruz Operation (SCO), Univel, and UNIX System Laboratories announced their intent to collaborate on a common open software environment (cose). The significance of the announcement cannot be overstated. These major vendors-still aggressive competitors in the computer market-are opening their books, sharing their data and engineering resources, and working together to define a standard specification for a common computing environment. As a result of the cose (pronounced "cosy") process, computer users will have a consistent computing experience, and software developers will have a consistent set of programming interfaces regardless of the platform they use. The goal is openness: vendors are bringing a unified look and feel to multi-vendor environments, enabling computer users to transparently access data and applications from any point on the network, regardless of the platform on which they work. The cose process includes capabilities for networking, graphics, multimedia, object-oriented programming, and systems management. The graphics portion, when implemented in the common open software environment, provides the fundamental programming utilities needed to produce graphics-intensive applications while shielding developers from specific hardware dependencies. This is important to the success of any open graphics strategy. Due to constant improvements in system performance and the widespread use of sophisticated graphics in today's applications, developers of 3D graphics applications have been clamoring loudly for a consistent set of software utilities and protocols. To address this, HP, Digital Equipment Corp., IBM, SCO, SunSoft, Univel and USL are agreeing upon common API specifications and interoperability protocols that support the X Consortium's imaging and graphics facilities. In the area of graphics, the group has endorsed the following: Xlib/X for basic 2D pixel graphics PEXlib/PEX for 2D and 3D geometry graphics XIElib/XIE for advanced imaging As part of the cose announcement, these companies agreed to a common approach for programming documentation, validation testing and test suites. Furthermore, they're working together on specific implementations of the protocols and APIs, and have agreed to share detailed information where needed to accelerate the delivery of common components that will increase graphics functionality. The development of the cose process came in direct response to increased user demands for a consistent technology that will interoperate across multiple platforms. In a word, computer users have been asking for "openness" so they can choose freely among all hardware technologies available to them. Application developers also view openness as their key to reducing development costs, increasing portability, and accelerating time to market with new applications. The Evolution of PEXlib Few people in the graphics industry dispute the value of open computing. The best way to implement open computing, however, is a point of contention that has placed the graphics marketplace at a crossroads. Major 3D application developers, pressured to reduce development costs and improve time to market, are setting their course for the next five years. They are deciding whether to link their fortunes to PEXlib or OpenGL. The evolution of PEXlib (and open graphics in general) shares many parallels with the evolution of the X Window System. Just a few years ago, all major workstation vendors had proprietary windowing systems. When the X Window System first appeared on the scene, vendors resisted the new technology. They pointed to the inadequacies of the X Window system-early releases were slow, cumbersome, complicated, and functionally incomplete-while stressing the strengths of their proprietary systems running on proprietary hardware. Some vendors even offered to "open" their proprietary systems, as long as they retained control of licensing and development. Still, the X Window System evolved under the guidance of the X Consortium to become the unifying windowing standard. A similar situation now exists with PEXlib. All major workstation vendors currently have proprietary APIs: Hewlett-Packard has Starbase, Sun has XGL, Silicon Graphics has IRIS GL. When PEXlib was first introduced, most vendors were less than enthusiastic. Like X, first releases of PEXlib were considered slow, cumbersome, complicated and functionally incomplete. Also like X, PEXlib has evolved around a shared sample implementation made available by the collaborative effort of the X Consortium. As a result, PEXlib 5.1 has emerged as a stable, tangible product that is available today on a wide range of platforms, from low-cost PEX terminals to high-end compute servers. Only SGI actively opposes PEXlib, proposing instead that the proprietary IRIS GL product be converted to an "open" product. Unlike the open collaboration on PEXlib, the development of OpenGL is tightly controlled by SGI's architectural review board, an invitation-only committee with closed membership. Another key difference: licensing fees for OpenGL will cost between $25,000 and $300,000, whereas licensing of PEXlib, like the X Window System, is free. The PHIGS Connection For the majority of 3D application developers, especially those with multiple PHIGS-based APIs, PEXlib seems to be the obvious choice for a standard low-level API. However, some developers hesitate to endorse PEXlib because of problems with early implementations of the PHIGS standard. Like the X Window System, PHIGS was an ambitious standard, and there was great interest industry-wide in defining the specification as quickly as possible. PHIGS products were quickly developed and introduced before the standard was fully defined. All of the early implementations had pre-guessed the standard differently, and some versions did not conform to mandated functionality because different hardware platforms supported the standard with different levels of efficiency. Not surprisingly, portability was difficult when the PHIGS standard was first made available, although PHIGS has matured to address most of its earlier problems. PEXlib has also matured since it was first introduced, and PEX has evolved far beyond its earlier ties to the PHIGS standard. Early concerns about portability, performance, functionality and openness have been addressed by the PEX Committee under the guidance of the X Consortium. In fact, in the past year the PEX acronym has become a misnomer; far from being a "PHIGS Extension to X," PEX now incorporates the mainstream needs of most 3D applications and represents the natural progression of an international standard. Strength in Numbers Both PEXlib and OpenGL claim a wide presence in the 3D graphics industry. The truth is, neither can yet claim to be the pervasive favorite of workstation users. However, PEXlib is shipping today while OpenGL is not. The reason is obvious. Core support for PEXlib began with the X Consortium, which was able to focus its resources and define the specification in under one year. Also, the PEX Interoperability Center (PEX IC) in the U.S., and a new PEX IC in Japan, are continuing the collaboration of engineering resources industry-wide. By any standards, these are compelling indicators of unification behind PEXlib. Still, SGI claims pervasiveness for OpenGL due to the company's large presence with IRIS GL in high-end workstations. SGI is admittedly the industry's most visible provider of graphics workstations for animation, simulation, imaging and other high-end niche applications. That gives IRIS GL a strong presence in high-end workstation markets. But other proprietary APIs serve their markets just as well. Starbase (from Hewlett-Packard) and XGL (from Sun) are the dominant APIs in design/drafting, engineering/analysis, and scientific research applications, traditional hotbeds of 2D and 3D graphics workstations. Looking beyond positioning strategies and focusing only on the total number of workstations in the market, HP and Sun workstations far outnumber SGI systems. So what does that mean for PEXlib and OpenGL? Today, neither can claim pervasiveness. But HP, Sun, IBM and DEC, the four largest sellers of workstations on the planet, and all other major workstation vendors except SGI are migrating to PEXlib. In addition, active participation in such things as the PEX IC and the X Consortium's PEX Committee indicate that momentum is amassed behind PEXlib. The Issue of Openness According to a survey conducted by Dun and Bradstreet at Uniforum 1993, interoperability is the single most important issue for computer and users. To the end user, interoperability means freedom, such as being able to plug in a low-cost terminal that can access data and applications anywhere on the network. To 3D application developers, it means power, such as having access to leading-edge technologies that are available from a variety of platform vendors. PEXlib/PEX is designed specifically for client/server environments, and the PEX IC ensures that PEX will continue to be available on everything from PEX terminals to supercomputers. In fact, client/server operation is possible today, putting PEX years ahead of OpenGL in that regard. Although the GLX protocol gets OpenGL on the network, the PEX protocol is a more efficient solution since it was intended from the start for network operation. For example, PEX edits display lists remotely and sends SOFAS and NURBS, rather than just polygons, over the network. By sending more compact data, network traffic is minimized, giving PEXlib significant performance advantages in open client/server environments. Proven Portability The issue of portability has always been key to the success of PEXlib. To application developers, it means being able to create applications that will run on virtually any platform with the same functionality and with minimal porting effort. Though neither PEXlib nor OpenGL can provide benchmarks from conformance testing, the PEX Committee, PEX IC and cose process are helping to ensure that any PEXlib application will run on any PEXlib platform. In real-world implementations, PEXlib has already demonstrated a high degree of portability among various hardware platforms. AVS, a scientific engineering and data visualization application, was ported from HP PHIGS to HP PEXlib in a couple of weeks, and was then ported to IBM's PEXlib in approximately one day. Another large CAD company in Europe moved an application of 1.3 million lines of code from a version of PHIGS to PEXlib running on a different platform in just two weeks, including testing time. PEXlib also has demonstrated that it provides identical functionality on comparable hardware platforms from Sun, HP, IBM, DEC and others. Levels of Abstraction PEXlib is a hardware-independent API built on top of the PEX protocol; OpenGL is a hardware-oriented API. The level of abstraction is a key difference between the two systems. Operating at the lower level, OpenGL is tightly tied to the capabilities of its underlying hardware, and thus the functionality available to programmers depends on the evolution of SGI hardware and graphics capabilities. PEXlib operates at a higher level of abstraction, so developers are further removed from the hardware changes that take place beneath the API. As the standard evolves, developers can take advantage of new functionalities as they become available from a variety of vendors on a variety of platforms. Common Misconceptions The majority of information currently being published about PEXlib is based on old assumptions or flawed logic that ties PEXlib too closely to the PHIGS standard. Here are a few of the more common misconceptions. PEX 6.0 will be incompatible with previous versions of PEXlib. PEX 6.0 represents the natural evolution of the PEX standard: current functionality will not change, while additional functionality for text, markers, complex polygons and display lists will be added. Existing PEXlib applications will not be affected by the upgrade. In fact, HP PEX 5.1 applications can run on a 6.0 server supporting the 5.1 protocol. Moving within the same platform family-for example, between HP or Sun systems-does not even require a re-link. PEXlib is difficult to use. From a programmer's point of view, the most difficult aspect of using PEXlib-or any other API, including OpenGL-is initialization. The initialization requirements of the X Window System are consistent across all APIs. Once past initialization, programming with PEXlib is comparable to any other 3D API on the market. To ease initialization, HP's PEXlib product currently ships with a utility that simplifies initialization. As soon as the HP utility is standardized, it will be available across all versions of PEXlib. In the meantime, HP PEXlib 5.1 includes toolkits, hypertext and on-line examples to assist programmers. Only OpenGL will provide access to Windows NT. On the contrary, it's unclear as to when OpenGL will be available on Windows NT. To date, the only firm announcement from Microsoft is that OpenGL is not available on the first release of Windows NT. When OpenGL is available, it will not support X-based network protocols and, in fact, will not provide any mechanisms for a remote user interface. On the other hand, several companies have announced their intention to provide X Windows (and thus PEXlib) support for Windows NT. These companies will be in a strong position to provide a PEXlib API integrated into a complete client/server environment. Conclusions As the graphics industry approaches its crossroads for 3D APIs, the dominant issue of PEXlib versus OpenGL involves a difference of philosophies. Should the graphics industry adopt an open standard as happened with the X Window System, or should a proprietary product be foisted upon computer users as a de facto industry standard. In the end, application developers will make their decisions with the facts available: The X Consortium has endorsed PEXlib and the PEX protocol for 3D graphics applications. As a result, PEXlib is shipping today while OpenGL is not. All major workstation vendors except SGI endorse PEXlib. The common open software environment (cose) process is defining a comprehensive common computing environment that will support PEXlib across all major workstation platforms. The PEX Interoperability Center (PEX IC) in the United States is already providing centralized, multi-vendor testing to assure interoperability across the platforms of all workstation vendors. A second PEX IC has been established in Japan to accomplish the same goal. PEXlib is controlled by the open-membership PEXlib Committee, which encourages the participation of any member in the X Consortium. OpenGL is controlled by SGI's invitation-only architectural review board, which maintains tight control of licensing and development of OpenGL. The PEX protocol is intended for client/server as well as desktop environments, and provides good network performance on a variety of platforms and price points, from PEX terminals to computer servers. The GLX protocol, which was retrofitted to bring OpenGL to the network, will not provide the required network performance and lacks choices in terminals. Low-cost PEX terminals are already available from a variety of companies including Tektronix, NCD, Japan Computer, SHOgraphics and others. As a hardware-independent API, PEXlib provides identical functionality and a high degree of portability across all platforms that support the standard. Since OpenGL is a hardware-dependent API, performance portability is expected to be poor on all machines except high-end, expensive SGI systems. In the end, one question overrides all others: Are 3D API implementors better served by proprietary products or by an open standard, with all that that implies? The answer to that question will determine the fates of PEXlib, OpenGL, and virtually every developer of 3D graphics applications. ### Kevin Borchert is graphics marketing manager for Hewlett-Packard's Systems Technology Division (HP STD) in Fort Collins, Colorado. 11 Dun and Bradstreet, March 19, 1993, "Two'Thirds of Survey Participants Say Right-Sizing Plan in 1993 As Companies Seek Efficiency" .......................................................................